#ifndef FUNCTION_BUTTON_MANAGER_H
#define FUNCTION_BUTTON_MANAGER_H

#include <gtk/gtk.h>
#include <map>
#include <string>
// 添加以下两个include声明
#include "ui_manager.h"
#include "../app/main_app.h"

class FunctionButtonManager {
public:
    static void on_function_button_clicked(GtkWidget *widget, gpointer data);
    static void stopSendCW();  // 新增的停止发送CW函数
    static void sendCW(GtkBuilder *builder, const std::string& cw_str);  // 新增的发送CW函数
    static void writeToQSOMemo(GtkBuilder *builder, const std::string& message);  // 新增的向edQSOMemo写入消息函数
    static int replaceCWStr(GtkBuilder *builder, std::string& cw_str);  // 新增的空函数
    static void saveLog(const std::string& date, const std::string& time, const std::string& band,
                        const std::string& frequency,  // 新增的频率参数
                        const std::string& mode, const std::string& call, const std::string& callsign, 
                        const std::string& snt, const std::string& rcv, const std::string& name, 
                       const std::string& memo);  // 新增的保存日志函数
    
    // 新增的int变量，比赛序号，从1开始
    static int QSOCount;
    
private:
    static std::string execute_command(const std::string& command);
};

#endif // FUNCTION_BUTTON_MANAGER_H